home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Text⁄Files / File List 14 / Main.h < prev    next >
Text File  |  1990-09-14  |  6KB  |  211 lines

  1. /*
  2.     FileList 1.4
  3.     "FileList.h"
  4. */
  5.  
  6. /* 'STR ' resourde IDs */
  7.  
  8. #define CREATOR            128        /* Application type */
  9. #define SAVENAME        129        /* Default filename */
  10. #define HEADER_FILES    130        /* Header files window */
  11. #define HEADER_VOLUMES    131        /* Header volumes window */
  12. #define SAVE_FILE_AS    132        /* Save file as */
  13. #define TITLE_FILES        133        /* Title files window */
  14. #define TITLE_VOLUMES    134        /* Title volumes window */
  15. #define SAVE_TEXT_AS    135        /* Save text as */
  16. #define OPTION_FILE        136        /* Option file name */
  17. #define OPTIONS            137        /* Option file type */
  18. #define TEXT_CREATOR    138        /* TEXT file creator */
  19.  
  20. #define ERR_OLD            256        /* Old system */
  21. #define ERR_MEMORY        257        /* No memory */
  22. #define ERR_DISK        258        /* Disk error */
  23.  
  24. /* 'ALRT' and 'DLOG' resource IDs */
  25.  
  26. #define MessageDialog    129        /* Used for error messages */
  27.  
  28. #define SaveDialog        130        /* Save before...? */
  29. #define        SaveOk            1
  30. #define        SaveNo            2
  31. #define        SaveCancel        3
  32.  
  33. #define    SelectDialog    132        /* List of volumes to read */
  34. #define        SelectOk        1
  35. #define        SelectCancel    2
  36. #define        SelectVolume    3
  37. #define        SelectCount        8
  38. #define        SelectEject        11
  39.  
  40. /* 'MENU' resource IDs */
  41.  
  42. #define AppleMenu        128
  43. #define     aAbout            1
  44.  
  45. #define FileMenu        129
  46. #define        fNew            1
  47. #define        fOpen            2
  48. #define        fClose            3
  49. #define        fSave            4
  50. #define        fSaveAs            5
  51. #define        fSaveText        6
  52. #define        fWindow            8
  53. #define        fOptions        9
  54. #define        fQuit            11
  55.  
  56. #define EditMenu        130
  57. #define        eUndo            1
  58. #define        eCut            3
  59. #define        eCopy            4
  60. #define        ePaste            5
  61. #define        eClear            6
  62. #define        eFind            8        /* Find */
  63. #define        eAgain            9        /* Find again */
  64. #define        eSelection        10        /* Move to selection */
  65. #define eItems                10
  66.  
  67. #define VolumeMenu        131
  68. #define        vAuto            1
  69. #define        vAdd            2
  70. #define        vDelete            3
  71. #define        vRename            4
  72. #define    vItems                4
  73.  
  74. #define FSortMenu        132
  75. #define        fsName            1
  76. #define        fsSize            2
  77. #define        fsType            3
  78. #define        fsCrea            4
  79. #define        fsCdate            5
  80. #define        fsMdate            6
  81. #define        fsVol            7
  82. #define        fsPath            8
  83. #define FSORT_MAX            8
  84.  
  85. #define VSortMenu        133
  86. #define        vsName            1
  87. #define        vsFree            2
  88. #define        vsTotal            3
  89. #define        vsFiles            4
  90. #define        vsCdate            5
  91. #define        vsMdate            6
  92. #define VSORT_MAX            6
  93.  
  94. /* Types and constants */
  95.  
  96. typedef struct {                    /* Data related to a window: */
  97.     WindowRecord    window;            /* - the window */
  98.     ControlHandle    vs;                /* - vertical scroll handle */
  99.     ControlHandle    hs;                /* - horizontal scroll handle */
  100.     short            descent;        /* - descent height */
  101.     short            height;            /* - height of one text line */
  102.     short            width;            /* - width of one text column */
  103.     short            maxsort;        /* - number of sorts */
  104.     short            sorted;            /* - sorted by */
  105.     MenuHandle        sortmenu;        /* - sort menu */
  106.     short            title;            /* - resource id of title */
  107.     short            header;            /* - resource id of header */
  108.     void            (*redraw)();    /* - redraw routine */
  109.     void            (*sort)();        /* - sort routine */
  110.     void            (*string)();    /* - text string routine */
  111.     long            *base;            /* - array with info record offsets */
  112.     long            select;            /* - selected record */
  113.     long            count;            /* - current number of records */
  114.     long            max;            /* - maximum number of records */
  115.     unsigned short    percent;        /* - percentage of records */
  116.     Rect            rectangle;        /* - initial window port rectangle */
  117.     short            columns;        /* - maximal number of columns */
  118.     short            vrefnum;        /* - used by last save text */
  119.     unsigned char    fname[64];        /* - used by last save text */
  120.     unsigned char    find[32];        /* - find string */
  121.     unsigned long    creator;        /* - find creator */
  122.     unsigned long    type;            /* - find type */
  123.     Boolean            (*match)();        /* - Match procedure */
  124. } WindowData, *WindowDataPtr, **WindowDataHdl;
  125.  
  126. #define VERSION 1L
  127.  
  128. /* Globals */
  129.  
  130. #ifdef GLOBALS
  131. Boolean            WNE;            /* WaitNextEvent implemented */
  132. Boolean            notQuiting;        /* Set to FALSE if quiting */
  133. Rect            Bounds;            /* Screen bounds */
  134. long            Creator;        /* Creator of application */
  135. long            Options;        /* Options file type */
  136. long            TextCreator;    /* Text file creator */
  137. MenuHandle        AppleM;            /* Apple menu */
  138. MenuHandle        FileM;            /* File menu */
  139. MenuHandle        EditM;            /* Edit menu */
  140. MenuHandle        VolumeM;        /* Volume menu */
  141. Ptr                InfoBase;        /* Huge memory block with info records */
  142. unsigned long    InfoSize;        /* Current size of info block */
  143. unsigned long    InfoMax;        /* Maximal size of info block */
  144. unsigned long    InfoCount;        /* Current number of info records */
  145. unsigned long    Heap;            /* Heap space needed */
  146. unsigned short    Record;            /* Average record name */
  147. WindowData        FileData;        /* File window data */
  148. WindowData        VolumeData;        /* Volume window data */
  149. Boolean            Automatic;        /* Automatic volume mode */
  150. Boolean            Stuffit;        /* Recognize StuffIt archives */
  151. Boolean            Compactor;        /* Recognize Compactor archives */
  152. Boolean            Dirty;            /* If not yet saved */
  153. short            VrefNum;        /* Used by last save */
  154. unsigned char    Fname[64];        /* Used by last save */
  155. short            SysVol;            /* System volume reference number */
  156. short            ApplVol;        /* Application volume reference number */
  157. short            SysVRefNum;        /* System folder */
  158. Boolean            Tabs;            /* Save text with tabs */
  159. short            DateFormat[3];    /* Date format */
  160. unsigned char    EmptyStr[] = "\p";
  161. unsigned char    CrStr[] = "\p\r";
  162. unsigned char    SpStr[] = "\p ";
  163. #else
  164. extern Boolean            WNE;
  165. extern Boolean            notQuiting;
  166. extern Rect                Bounds;
  167. extern long                Creator;
  168. extern long                Options;
  169. extern long                TextCreator;
  170. extern MenuHandle        AppleM;
  171. extern MenuHandle        FileM;
  172. extern MenuHandle        EditM;
  173. extern MenuHandle        VolumeM;
  174. extern Ptr                InfoBase;
  175. extern unsigned long    InfoSize;
  176. extern unsigned long    InfoMax;
  177. extern unsigned long    InfoCount;
  178. extern unsigned long    Heap;
  179. extern unsigned short     Record;
  180. extern WindowData        FileData;
  181. extern WindowData        VolumeData;
  182. extern Boolean            Automatic;
  183. extern Boolean            Stuffit;
  184. extern Boolean            Compactor;
  185. extern Boolean            Dirty;
  186. extern short            VrefNum;
  187. extern unsigned char    Fname[64];
  188. extern short            SysVol;
  189. extern short            ApplVol;
  190. extern short            SysVRefNum;
  191. extern Boolean            Tabs;
  192. extern short            DateFormat[];
  193. extern unsigned char    EmptyStr[];
  194. extern unsigned char    CrStr[];
  195. extern unsigned char    SpStr[];
  196. #endif
  197.  
  198. /* Prototypes */
  199.  
  200. void ClearSorted (WindowDataPtr);
  201. pascal void Crash (void);
  202. void DoClose (WindowPeek);
  203. void DoClose1 (WindowPtr);
  204. void DoDisk (unsigned long);
  205. void DoQuit (void);
  206. void DoSort (WindowDataPtr, short);
  207. void Message (short, short);
  208. void NewTitle (WindowDataPtr);
  209. Boolean SaveBefore (void);
  210. void Update (void);
  211.